#if UNITY_STANDALONE || UNITY_ANDROID || UNITY_IOS || UNITY_WSA || UNITY_WEBGL
namespace ActorSystem
{
    public class NormalDamageBuffBase<A, P> : IDamageBuff<A, P> where A : ActorBase<A, P> where P : ActorPropertyBase
    {
        public int Damage = 20;
        public string Name { get; set; }
        public float Duration { get; set; }
        public A Self { get; set; }
        public A BeAttack { get; set; }

        public virtual void OnBuffBegin()
        {
        }

        public virtual void OnBuffEnd()
        {
        }

        public bool OnUpdate()
        {
            return false;
        }
    }

    public class NormalDamageBuff<A, P> : NormalDamageBuffBase<A, P> where A : ActorBase<A, P> where P : GeneralProperty
    {
        public override void OnBuffBegin()
        {
            BeAttack.Property.Health -= Damage;
        }
    }

    public class NormalDamageBuff<A> : NormalDamageBuff<A, GeneralProperty> where A : ActorBase<A, GeneralProperty>
    {
    }
}
#endif